The most widely used direct access storage device for storing large amounts of information in a data processing system is a magnetic disk file. A disk file generally comprises a disk drive and a removable pack or cartridge such as the IBM types 2314, 3330, 3340 disk drives and IBM types 2316 and 3336 disk packs and 3348 disk cartridges. In some disk files the disks are not removable by the user. The number of disks employed in a disk pack or file is fixed for a specific model and is generally a function of the total amount of storage desired in the system.
The recording surface of the disk is normally composed of a large number of concentric circular tracks. The number of tracks on each disk for a specific disk drive is usually the same and is generally a function of the magnetic transducer positioning system of the disk drive. The number of tracks or track density may and does vary between types of disk drives. Likewise, the density at which information is recorded measured in bits per inch along the track varies between different types of disk drives and is usually a function of the magnetic surface, recording head and other components of the recording system of the drive. Track capacity is a function of recording density measured in bits per inch and the physical length of the track. Track capacity is generally fixed for a specific disk drive, but may and does differ among various types of disk drives. Lastly, the rate at which the disk rotates may differ between the various types of disk drives. The data rate of a file is measured in bytes per second and is a measure of how fast data can be recorded and read from the file. The raw data rate is a function of the linear recording density and the rate at which the disk is revolving, each of which is fixed for a specific disk drive; but different types of disk drives may and do have different raw data rates.
In most data processing systems, information is handled in the form of individual addressable records. Generally, the track capacity of any disk drive, that is, the number of bytes of information that the track can store, is many orders of magnitude greater than the number of bytes of an individual record. As a result, data tracks can and do store a number of different records. From a data processing system standpoint, only one record is processed at a time by the system so various arrangements have been used which allow individual records on a track to be identified.
In one such prior art arrangement, the length of all records are fixed generally at a sub-multiple of the track capacity so that the address of the record can be directly converted to a particular physical sector of the circular track. If, for example, the track capacity was 10,000 bytes, each of the records would be fixed at 1,000 bytes, and means would be provided to identify the beginning of each of the ten different sectors of the disk. In some of the systems, the format of the individual record would permit an address field designating the device address, the track address and the sector address of the particular record.
The above arrangement is generally employed where information to be handled by the system or to be stored results in records of the same length. Where the length of the records varies substantially the storage efficiency of such an arrangement is decreased since the track format must allow for a maximum length record in any sector or record position.
In another prior art arrangement, the track format allowed for multiple records on the same track to vary in length relative to each other, but the physical position of each record was fixed. This arrangement, in effect, again divides the track into sectors, but allows the size of any one sector to be independent of the other sectors. This arrangement has advantages where the record lengths are known in advance and the possibility of changing the record length is minimal.
The third arrangement suggested by the prior art which is probably the most widely used in present day data processing systems is referred to as Count-Key-Data (CKD). The wide use of the Count-Key-Data format is undoubtedly due to its flexibility which allows records to be of variable length. Briefly, in this format, the basic record format involves a count field, an optional and variable length key field and a variable length data field. The count field and the key field are integral parts of the record as it is processed in the data processing system. The count field is fixed in length and specifies the record number on the track and the respective lengths of the key and data fields. The key field, if used, is variable length and may be used to rapidly identify particular records which have been stored in accordance with some preestablished classification scheme based on the key fields. The last field of the record is the data field and can be of variable length.
In order to gain the inherent flexibility of a Count-Key-Data record format, it is necessary when recording the record on the track to insert prior to a count field a unique identifier, referred to as the address mark. Since it is also desirable to be able to modify either the following key field or the data field, or both, on the same revolution, a finite time is required between the fields to compare the record identifier read from the count field against some search argument and then switch the appropriate circuits from a reading mode to a writing mode. The Count-Key-Data format when recorded on the track therefore provides inter-field gaps on the track and also inter-record gaps between the end of the data field of one record and the beginning of the count field on the next record. The physical length measured in inches of the particular gaps for any given model of the disk drive is a function of the decision time necessary to switch from one operation to another and will therefore be proportional to the rotational speed of the disks. The length of the gaps measured in number of bytes, of course, will be dependent upon the linear recording density of the particular drive in addition to the rotational speed of the disk and will therefore be related to the raw data rate of the drive.
It will be apparent from the above that the starting point of a record measured in terms of the number of bytes from the beginning of the track in a CKD format is dependent upon several factors such as the length of the data fields preceding it, the type of preceding records and the number of preceding records since this affects the number of gaps. It should also be apparent that the number of records capable of being recorded on any track will be affected by the same factors. Specified track capacity can be and usually is defined by a formula relating the number of records, the length of key and data fields, and a number of bytes, which may be less than the maximum capacity, to account for timing tolerances that occur under worse case conditions.
A data processing system is generally programmed to reflect the total amount of storage available to the system, each storage device being defined in terms of the number of addressable tracks and the storage capacity of each track. The system may assign records to storage tracks and does the necessary accounting to insure that the number of records assigned to a given track is within the capacity of the track. Alternatively, the system may determine the number of bytes remaining on the track after the last record by trial and error and then fill the track close to actual capacity by selecting an appropriate sized record for that track. As additional storage devices of the same type are added to the system, the data processing system merely has to assign new addresses.
However, when new storage devices are developed in which the track capacity measured in the number of bytes is increased, a problem arises in attempting to attach these devices into a system which currently employs disk files having lower track capacities and a particular Count-Key-Data format. The problem has been solved in the past by reprogramming the data processing system to take into account all the characteristics of the new device. This involves considerable reprogramming effort and imposes additional housekeeping functions on the overall system to insure that a full track of records that is written on one device can be appropriately handled on the other device.